import java.util.Random;
import java.util.Scanner;

public class TestDemo {
    public static void func(int n) {
        for (int i = 0; i <= n; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(i + "*" + j + "=" + i * j + " ");
            }
            System.out.println();
        }
    }

    public static void main15(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        func(n);
    }
    public static void main14(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int i = 1;
        int j = 1;
        for(i = 1; i <= n; i++) {
            for (j = 1; j <= i; j++) {
                System.out.printf("%d * %d = %d ", i, j, i * j);
            }
            System.out.println();
        }
    }
    /**
     * 输出一个整数的每一位，如：123的每一位是1 ， 2 ， 3
     * @param args
     */
    public static void main13(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n  = scanner.nextInt();
        while(n != 0) {
            System.out.println(n % 10);
            n /= 10;
        }
    }
    /**
     * 编写代码模拟三次密码输入的场景。 最多能输入三次密码，密码正确，提示“登录成功”,密码错误， 可以重新输 入，最多输入三次。三次均错，则提示退出程序
     * @param args
     */
    public static void main12(String[] args) {
        Scanner scanner =new Scanner(System.in);

        String password = "abcdefg";
        int i = 0;
        while (i < 3) {
            String str = scanner.nextLine();
            if( password.equals(str)) {
                System.out.println("密码正确");
                break;
            } else {
                System.out.println("密码错误，请重新输入");
                i++;
            }
        }
        if(i == 3) {
            System.out.println("错误三次，请明天再试");
        }
    }
    /**
     * 获取一个数二进制序列中所有的偶数位和奇数位， 分别输出二进制序列
     * @param args
     */
    public static void main11(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        int numOdd = num & 0x55555555;//0x 01010101 01010101 01010101 01010101
        System.out.println(Integer.toBinaryString(numOdd));
        int numEve = num & 0xAAAAAAAA;//0x 10101010 10  101010 10101010 10101010
        System.out.println(Integer.toBinaryString(numEve));
    }
    public static int numOf1(int n) {
        int i = 0;
        int count = 0;
        for (i = 0; i < 32; i++) {
            if(((n>>i) & 1) == 1) {
                count++;
            }
        }
        return count;
    }
    /**
     * 求一个整数，在内存当中存储时，二进制1的个数
     * @param args
     */
    public static void main10(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            int num = scanner.nextInt();
            int count = numOf1(num);
            System.out.println(count);
        }
    }
    /**
     *
     * @param a
     * @param b
     * @return 返回最大公约数
     */
    public static int maxGcd(int a, int b) {
        int c = a % b;
        while (c != 0) {
            a = b;
            b = c;
            c = a % b;
        }
        return  b;
    }
    /**
     * 求两个正整数的最大公约数
     * @param args
     */

    public static void main9(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int num = maxGcd(a,b);
        System.out.println(maxGcd(a, b));
        System.out.println(num);
     }
    /**
     * 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
     * @param args
     */
    public static void main8(String[] args) {
        int i = 0;
        double sum = 0.0;
        for (i = 1; i <= 100; i++) {
            int flag = 1;
            if(i % 2 == 0) {
                flag = -1;
            }
            sum += (1.0 / i) * flag;
        }
        System.out.println(sum);
    }
    /**
     *
     * @param n
     * @return return 1 //表示是水仙花数       return 0 表示不是
     */
    public static int isDaffNum(int n) {
        int num1 = n % 10;
        int num2 = n / 10 % 10;
        int num3 = n / 100;
        int ret = num1 * num1 * num1 + num2 * num2 * num2 + num3 * num3 * num3;
        if (ret == n) {
            return  1;
        }
        return 0;
    }
    public static void main7(String[] args) {
        int i = 0;
        for (i = 100; i < 1000; i++) {
            int n = isDaffNum(i);
            if (n == 1) {
                System.out.println(i + "是一个水仙花数");
            }
        }
    }
    public static void game(int ret) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请输入你要猜的数字");
            int num = scanner.nextInt();
            if (num == ret) {
                System.out.println("猜正确了");
                break;
            } else if (num < ret) {
                System.out.println("猜小了");
            } else {
                System.out.println("猜大了");
            }
        }
    }
    public static void menu() {
        System.out.println("*******************************");
        System.out.println("**************1.PALY***********");
        System.out.println("**************0.EXIT***********");
        System.out.println("*******************************");
    }
    /**
     * 猜数字游戏
     * @param args
     */
    public static void main6(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        int input = 0;
        do {
            int ret = random.nextInt(100) + 1;//产生1-100的数字;
            menu();
            System.out.println("请输入你的选择");
            input = scanner.nextInt();
            switch (input) {
                case 1:
                    game(ret);
                    break;
                case 0:
                    System.out.println("退出游戏");
                    break;
                default:
                    System.out.println("输入错误请重新输入");
                    break;
            }

        } while (input != 0);

    }
    /**
     *
     * @param age age是输入年龄
     * @return 1 是少年 return 2 是青年 return 3 是中年 return 4 是老年   return -1 表示输入年龄错误
     */
    public static int isAge(int age) {
        if(0 <= age && age <= 18) {
            return  1;
        } else if (19 <= age && age <= 28) {
            return  2;
        } else  if (29 <= age && age <= 55) {
            return  3;
        } else if (age >= 56) {
            return 4;
        } else {
            return -1;
        }

    }
    /**
     * 根据输入的年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
     * @param args
     */
    public static void main5(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            int age = scanner.nextInt();
            int ret = isAge(age);
            if (ret == 1) {
                System.out.println(age + " 少年");
            } else if (ret == 2) {
                System.out.println(age + "青年");
            } else if (ret == 3) {
                System.out.println(age + "中年");
            } else if (ret == 4) {
                System.out.println(age + "老年");
            } else {
                System.out.println("年龄输入异常");
            }
        }
    }
    /**
     *
     * @param n  n是给定判断的数
     * @return 返回1表示是素数 返回0表示不是素数
     */
    public static boolean isPrimeNum(int n) {
        int i = 0;
        for(i = 2; i <Math.sqrt(n); i++) {
            if(n % i == 0) {
                return false;
            }
        }
        return  true;
    }
    public static int isPrimeNum1(int n) {
        int i = 0;
        for(i = 2; i < n / 2; i++) {
            if(n % i == 0) {
                return 0;
            }
        }
        return  1;
    }
    /**
     * 给定一个数字，判定一个数字是否是素数
     * @param args
     */
    public static void main4(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        boolean ret = isPrimeNum(n);
        if(ret == true) {
            System.out.println("是素数");
        } else {
            System.out.println("不是素数");
        }

    }
    public static void main41(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int ret = isPrimeNum1(n);
        if(ret == 1) {
            System.out.println("是素数");
        } else {
            System.out.println("不是素数");
        }

    }
    /**
     *打印 1 - 100 之间所有的素数
     * @param args
     */
    public static void main3(String[] args) {
        int i = 0;
        int j = 0;
        for(i = 1; i <= 100; i +=2) {
            for (j = 2; j <= i; j++) {
                if(i%j==0) {
                    break;
                }
            } if (j == i) {
                System.out.println(i + " 素数");
            }
        }
    }

    /**
     * 输出 1000 - 2000 之间所有的闰年
     * @param args
     */
    public static void main2(String[] args) {
        int i = 0;
        for (i = 1000; i <= 2000; i++) {
            if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
                System.out.println( i + "是闰年");
            }
        }
    }

    /**
     * 编写程序数一下 1到 100 的所有整数中出现多少个数字9
     * @param args
     */
    public static void main1(String[] args) {
        int i = 0;
        int count = 0;
        for(i = 0; i <= 100; i++) {
            if(i % 10 == 9) {
                count++;
            } if (i / 10 == 9) {
                count++;
            }
        }
        System.out.println(count);
    }
}
